POV-Ray : Newsgroups : povray.advanced-users : movie within : Re: movie within Server Time
29 Jul 2024 08:10:56 EDT (-0400)
  Re: movie within  
From: Thorsten Froehlich
Date: 4 Feb 2004 07:15:01
Message: <4020e245@news.povray.org>
In article <40207f73$1@news.povray.org> , Darren <dne### [at] sanrrcom>  wrote:

>> Remember that there is more than gaming.  And DirectX, from a programmer's
>> perspective is an impossible API.  It just changes 90% with each version.
>
> Actually, I'm curious about this. If the API changes 90% with each
> version, how is it that a game that runs with DirectX7 installed
> continues to run when upgrading to DirectX8 and DirectX9?

The API itself is versioned.  Using special dynamic linking rules (which is
what COM provides - a kind of semi-dynamic binding), backward compatibility
is mostly kept.  Yet, there are several pitfalls when mixing API versions in
the same application, specially when dealing with data structures that
changed.  For the most part this does indeed allow old applications to run
on newer versions of the API transparently.  Of course, there is a catch:
Certain features in older APIs eventually end up being deprecated because
their design does not fit well with modern hardware at API allows you to
interface to.  Shaders are a good example.

A good example of this backward compatibility thing is actually that of
Direct3D drivers.  Vendors put a lot of work in optimising for the new
versions of the API, yet at the same time neglect optimising older API
versions' features.  And eventually, while probably still around, those old
versions get less stable when running on new hardware.

With games of course this does not matter much.  You keep them around for
two or three years at most.  And you are unlikely to care in five years.
However, in big corporate setups with hundreds or thousands or workstations,
upgrading, even "just" software does take place less frequently.  So for
compatibility reasons you need to be using older versions of tools.  And
they better still run well on new hardware!

Back to the case of 3D rendering APIs, OpenGL is the closest to a common
standard.  It definitely isn't the ultimate, final and perfect standard, but
it does provide basic long-term stability of its API.  And it provides in
parts a much higher level of abstraction than Direct3D does.  In particular,
there are also high-quality OpenGL software renderers available (if you have
the money).

On the other hand, all major vendors of CAD applications have been in the
market for much longer than the lifetime of OpenGL or Direct3D.  So they got
their own abstraction layer on top of OpenGL.  And they could easily switch
to Direct3D if they wanted to.  Yet, Direct3D does not offer them much, if
anything for their application domain.  Programmable shaders are hardly a
use in a CAD application displaying a complex wireframe model.  There you
care more about about line antialiasing (which early Direct3D
implementations did not provide at all) than fancy texturing options.  And
if you want a high quality display, these applications use a software
rendering or export to 3D rendering applications anyway.

    Thorsten

____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.